#include "Facade.h"

Facade::Facade( Jeu& oJeu ) : oJeu(oJeu) {}

void Facade::veutRamasser( int x, int y, TypeDirection dir, TypeGant type, TRecCol& recCol )
{ oJeu.veutRamasser(x, y, dir, type, recCol); }

TypeObjet Facade::soulever( int x, int y, TypeDirection dir, TypeGant type, TRecCol& recCol )
{ return oJeu.soulever(x, y, dir, type, recCol); }

TypeTuile Facade::getTypeTuile( int x, int y, SDL_Rect& recCol )
{ return oMonde->getTypeTuile(x, y, recCol); }

void Facade::lancerObjet( int x, int y, TypeDirection dir, TypeObjet type )
{ oJeu.lancerObjet( x, y, dir, type ); }

void Facade::tirerFleche( int x, int y, TypeDirection dir, TypeProjectile type )
{ oJeu.tirerFleche( x, y, dir, type ); }

void Facade::poserBombe( int x, int y )
{ oJeu.poserBombe( x, y ); }

void Facade::tirerGrappin( int x, int y, TypeDirection dir )
{ oJeu.tirerGrappin( x, y, dir ); }

void Facade::tirerMagie( int x, int y, TypeDirection dir )
{ oJeu.tirerMagie( x, y, dir ); }

void Facade::allumerLanterne( int x, int y, TypeDirection dir )
{ oJeu.allumerLanterne( x, y, dir ); }

void Facade::boire( TypeEquipement bouteille )
{ oJeu.boire( bouteille ); }

void Facade::setTypeAnimLink(TypeAnim type)
{ oLink->setTypeAnim(type); }

int Facade::getLargMondePixel()
{ return oMonde->getLargMondePixel(); }

int Facade::getHautMondePixel()
{ return oMonde->getHautMondePixel(); }

int Facade::getLargMonde()
{ return oMonde->getLargMonde(); }

int Facade::getHautMonde()
{ return oMonde->getHautMonde(); }

int Facade::getLargCarte()
{ return oMonde->getLargCarte(); }

int Facade::getHautCarte()
{ return oMonde->getHautCarte(); }

//Pour l'affichage du statut
bool Facade::LinkACetEquipement (TypeEquipement equip) { return oLink->aCetEquipement(equip); }

int Facade::getLinkQteVie        () { return oLink->getQteVie();        }
int Facade::getLinkQteVieMax     () { return oLink->getQteVieMax();     }
int Facade::getLinkQteMagie      () { return oLink->getQteMagie();      }
int Facade::getLinkQteMagieMax   () { return oLink->getQteMagieMax();   }
int Facade::getLinkQteFleches    () { return oLink->getQteFleches();    }
int Facade::getLinkQteFlechesMax () { return oLink->getQteFlechesMax(); }
int Facade::getLinkQteBombes     () { return oLink->getQteBombes();     }
int Facade::getLinkQteBombesMax  () { return oLink->getQteBombesMax();  }
int Facade::getLinkQteRubis      () { return oLink->getQteRubis();      }
int Facade::getLinkQteRubisMax   () { return oLink->getQteRubisMax();   }
int Facade::getLinkQteCles       () { return oLink->getQteCles();       }

TypeEquipement Facade::getLinkEquipActif() { return oLink->getEquipActif(); }

TypeArc  Facade::getLinkTypeArc  () { return oLink->getTypeArc();  }
TypeGant Facade::getLinkTypeGant () { return oLink->getTypeGant(); }

Facade::~Facade() {}
